package org.ade.monak.anak.service.gate.monak;

import org.ade.monak.anak.Variable.Status;
import org.ade.monak.anak.Variable.TipeKoneksi;
import org.ade.monak.anak.Variable.TipePesanMonak;
import org.ade.monak.anak.entity.Ortu;
import org.ade.monak.anak.service.gate.SenderInternet;
import org.ade.monak.anak.service.gate.SenderSMS;

import android.content.Context;
import android.os.Handler;
import android.os.Message;

public class SenderKonfirmasi{

	public SenderKonfirmasi(Context context, Ortu ortu){
		this.context = context;
		this.senderInternet = new SenderInternet(context, new HandlerSenderInternetMonitoring(this));
		this.ortu = ortu;
		this.senderSMS = new SenderSMS(context, null);
	}
	
	public void sendKonfirmasiDeAktifMonitoring(String idMonitoring){
		pesan = TipePesanMonak.KONFIRMASI_DEAKTIF_MONITORING+","+idMonitoring;
		senderInternet.kirimPesan(ortu.getIdOrtu(), pesan);
	}
	
	public void sendKonfirmasiDeAktifAnak(Ortu ortu){
		pesan = TipePesanMonak.KONFIRMASI_DEAKTIF_ANAK+","+ortu.getIdAnak();
		senderInternet.kirimPesan(ortu.getIdOrtu(), pesan);
	}
	
	public void sendKonformasiAktifMonitoring(String idMonitoring){
		pesan = TipePesanMonak.KONFIRMASI_AKTIF_MONITORING+","+idMonitoring;
		senderInternet.kirimPesan(ortu.getIdOrtu(), pesan);
	}
	
	public void sendKonfirmasiStopTracking(){

		pesan = TipePesanMonak.KONFIRMASI_STOP_TRACKING+","+ortu.getIdAnak();
		senderInternet.kirimPesan(ortu.getIdOrtu(), pesan);
	}
	
	public void sendKonfirmasiStartTracking(){

		pesan = TipePesanMonak.KONFIRMASI_START_TRACKING+","+ortu.getIdAnak();
		senderInternet.kirimPesan(ortu.getIdOrtu(), pesan);
	}
	
	public void sendKonfirmasiHapusAnak(){
		pesan = TipePesanMonak.KONFIRMASI_HAPUS_ANAK+","+ortu.getIdAnak();
		
		senderInternet.kirimPesan(ortu.getIdOrtu(), pesan);
	}
	
	public void success(int tipeKoneksi) {
		// TODO Auto-generated method stub
		
	}
	
	public void failed(int tipeKoneksi) {	
		if(tipeKoneksi==TipeKoneksi.INTERNET){
			senderSMS.kirimPesan(ortu.getNoHp(), pesan);
		}
	}
	
	private final Ortu ortu;
	private final Context context;
	private final SenderSMS senderSMS;
	private final SenderInternet senderInternet;
	private String pesan;
	
	private static final class HandlerSenderInternetMonitoring extends Handler{

		public HandlerSenderInternetMonitoring(SenderKonfirmasi senderMonitoring){
			this.senderMonitoring = senderMonitoring;
		}
		
		@Override
		public void handleMessage(Message msg) {
			switch(msg.what){
				case Status.SUCCESS:{
					senderMonitoring.success(TipeKoneksi.INTERNET);
					break;
				}case Status.FAILED:{
					senderMonitoring.failed(TipeKoneksi.INTERNET);
					break;
				}
			}
		}
		private SenderKonfirmasi senderMonitoring;
		
	}
	

}
